package com.loong.ems.mapper;

import com.loong.ems.domain.entity.Employee;
import com.loong.ems.domain.vo.resp.EmployeeExcelVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 龙勇-229970722
 * @date 2025-01-02 9:12
 * @description:
 */
@Mapper
public interface EmployeeMapper {
    /**
     * 查询所有员工信息
     * @return
     */
    List<Employee> list();



    /**
     * 离职员工
     * @param id
     */
    void deleteById(@Param("id") Long id);

    /**
     * 更新员工信息
     * @param employee
     */
    void updateByEmployee(@Param("employee") Employee employee);

    /**
     * 新增员工信息
     * @param employee
     */
    void addByEmployee(@Param("employee") Employee employee);

    /**
     * 查询所有离职员工信息
     * @return
     */
    List<Employee> listLeave();

    /**
     * 恢复员工信息
     * @param id
     */
    void recover(@Param("id") Long id);

    /**
     * 查询员工信息模糊查询
     * @param str
     * @return
     */
    List<Employee> search(@Param("str") String str);

    /**
     * 查询员工总数
     * @return
     */
    int count();

    /**
     * 导出所有员工信息
     * @return
     */
    List<EmployeeExcelVo> getAllEmployeeData();
}
